iT邦幫忙

2025 iThome 鐵人賽

DAY 29
0

今天的目標

我們要讓系統能夠:

  • 每天固定時間自動啟動
  • 從 Google Sheet 讀取作業清單
  • 篩選出「今天要完成的項目」
  • 自動推播到 LINE Notify

整體流程圖

[Schedule Trigger]
   ↓
[Google Sheets - 讀取作業清單]
   ↓
[Function - 篩選今日未完成]
   ↓
[Function - 生成提醒訊息]
   ↓
[HTTP Request - 傳送 LINE Notify]

Step 1:設定每日自動觸發

  1. 新增 Schedule Trigger 節點
  2. 在設定中選擇:
  • Mode:Every Day
  • Time:08:00

Step 2:建立 Google Sheet 作業清單

到 Google 雲端硬碟新建一個試算表,例如命名為「作業進度表」。

日期 科目 任務內容 是否完成
2025/10/08 微積分 第7章習題
2025/10/09 演算法 影片上傳
2025/10/09 機率統計 第5章作業

Step 3:連接 Google Sheets

  1. 在 n8n 新增 Google Sheets 節點
  2. 登入帳號後,設定:
  • Operation:Read Rows
  • Spreadsheet ID:選取剛剛的表
  • Range:Sheet1!A:D

執行後,n8n 就能抓出整張作業表的資料!

Step 4:篩選今日的未完成作業

新增 Function 節點,放在 Google Sheets 後面。

輸入以下程式碼:

const today = new Date().toISOString().split("T")[0];
const tasks = $input.all().map(i => i.json);

const todayTasks = tasks.filter(t => 
  t["日期"] === today && t["是否完成"] !== "是"
);

return [{ json: { todayTasks } }];

這段程式會幫你抓出「日期是今天」而且「還沒完成」的作業。

Step 5:生成推播訊息

再新增一個 Function 節點,輸入:

const data = $json.todayTasks;
if (data.length === 0) {
  return [{ json: { message: "今天沒有作業!放鬆一下吧~" } }];
}

let msg = "今日作業提醒:\n";
data.forEach((t, i) => {
  msg += `${i+1}. ${t["科目"]}:${t["任務內容"]}\n`;
});
msg += "\n加油 記得按時完成喔!";

return [{ json: { message: msg } }];

Step 6:用 LINE Notify 推播

新增 HTTP Request 節點,設定如下:

  • Method:POST

  • URLhttps://notify-api.line.me/api/notify

  • Headers:

    Authorization: Bearer 你的_LINE_TOKEN
    Content-Type: application/x-www-form-urlencoded
    
  • Body:

    message={{$json["message"]}}
    

完成後,每天早上 8 點你就會收到 LINE 通知:

今日作業提醒:
1. 微積分:第7章習題
2. 機率統計:第5章作業

加油 記得按時完成喔!

上一篇
Day 28 : 自動推送天氣 / 星座 / 新聞
下一篇
Day 30 : 總結心得
系列文
從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言